/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.servidor;

import br.com.cliente.Hospede;
import br.com.cliente.Hotel;
import br.com.cliente.Reserva;
import java.io.IOException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.text.ParseException;
import java.util.List;

/**
 *
 * @author Anderson
 */
public interface IServidor extends Remote {

    public boolean saveHospede(Hospede hospede) throws RemoteException, IOException;

    public Hospede getHospede(String CPF) throws RemoteException, IOException;

    public List<Hospede> getAllHospedes() throws RemoteException, IOException;

    public void removeHospede(String CPF) throws RemoteException, IOException;

    public void editLastStayHospede(String CPF, Reserva reserva) throws RemoteException, IOException;

    public boolean saveHotel(Hotel hotel) throws RemoteException, IOException;

    public Hotel getHotel(String nome) throws RemoteException, IOException;

    public List<Hotel> getAllHoteis() throws RemoteException, IOException;

    //public boolean removeHotel(String nome) throws RemoteException, IOException;
    public void removeHotel(String nome) throws RemoteException, IOException;

    public boolean saveReserva(Reserva reserva, String CPF) throws RemoteException, IOException, Exception;

    public Reserva getReserva(String nomeHotel, String CPF) throws RemoteException, IOException, Exception;

    public List<Reserva> getAllReservaFromHotel(String nomeHotel) throws RemoteException, IOException, Exception;

    public boolean checkReserva(String dataInicio, String dataFim, int quarto, String nomeHotel) throws RemoteException, IOException, ParseException;

    public boolean payReserva(int quarto, String CPF, String hotelNome) throws RemoteException, IOException, Exception;

    public boolean extendReserva(Reserva reserva, String dataExtendida) throws RemoteException, Exception, IOException;

    public boolean extendReservaAnotherRoom(Reserva reserva, String dataExtendida) throws RemoteException, IOException, Exception;
}

